package com.mastercard.assets.web.struts.forms ;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

import com.mastercard.assets.MasterCardException;
import com.mastercard.assets.jpa.TblCategoria;
import com.mastercard.assets.jpa.TblSubcateg;
import com.mastercard.assets.jpa.TblUsuario;
import com.mastercard.assets.util.MCUtil;
import com.mastercard.assets.util.dao.MasterCardDAO;
import com.mastercard.assets.web.util.to.FormaSalidaManager;
import com.mastercard.assets.web.util.to.UserLogin;

public class TareasOperationForm
	extends
		TareasForm
{
	private String nombre ;
	private String descripcion ;
	private int cveFlujo ;
	private int cveAlerta ;
	private int cveAlarma ;
	private int cveFormaAlerta ;
	private int cveTarea ;
	private int cveRole ;
	private int cveNivel ;
	private int cveForma ;
	private int cveSalida ;
	private String activeDate ;
	private String activeDateF ;
	private Timestamp activeDateTimestamp ;
	private boolean fechaActivaDias ;
	private int fechaActivacionDate ;
	private String fechaActivacionDias ;
	private int fechaActivacionDiasI ;
	private String limitDate ;
	private String limitDateF ;
	private Timestamp limitDateTimestamp ;
	private boolean fechaLimitDias ;
	private String fechaLimiteDias ;
	private int fechaLimiteDiasI ;
	private int fechaLimiteDate ;
	private int[ ] formas ;
	private FormaSalidaManager salidasManager ;
	private int tipoAlerta ;
	private int tipoAlarma ;
	private String email ;
	private int cargar ;
	private String dias ;
	private int diasI ;
	private int horas ;
	private String nombreFlujo ;
        private int multiple;
        private int microFlujo ;
	
	public String getNombreFlujo() {
		return nombreFlujo;
	}


	public void setNombreFlujo(String nombreFlujo) {
		this.nombreFlujo = nombreFlujo;
	}


	public int getHoras() {
		return horas;
	}


	public void setHoras(int horas) {
		this.horas = horas;
	}


	public String getActiveDateF() {
		if( activeDate == null || activeDate.length( ) != 10 )
			return "" ;
		
		String[ ] tokens = activeDate.split( "/" ) ;
		
		if( tokens.length != 3 )
			return "" ;
		
		return tokens[ 2 ] + "-" + tokens[ 1 ] + "-" + tokens[ 0 ] ;
	}


	public String getLimitDateF() {
		if( limitDate == null || limitDate.length( ) != 10 )
			return "" ;
		
		String[ ] tokens = limitDate.split( "/" ) ;
		
		if( tokens.length != 3 )
			return "" ;
		
		return tokens[ 2 ] + "-" + tokens[ 1 ] + "-" + tokens[ 0 ] ;
	}


	public String getDias() {
		return dias;
	}


	public void setDias(String dias) {
		this.dias = dias;
	}


	public int getDiasI() {
		return diasI;
	}


	public int getTipoAlarma() {
		return tipoAlarma;
	}


	public void setTipoAlarma(int tipoAlarma) {
		this.tipoAlarma = tipoAlarma;
	}


	public int getCveAlarma() {
		return cveAlarma;
	}


	public void setCveAlarma(int cveAlarma) {
		this.cveAlarma = cveAlarma;
	}


	public int getCargar() {
		return cargar;
	}


	public void setCargar(int cargar) {
		this.cargar = cargar;
	}


	public int getCveFormaAlerta() {
		return cveFormaAlerta;
	}


	public void setCveFormaAlerta(int cveFormaAlerta) {
		this.cveFormaAlerta = cveFormaAlerta;
	}


	public int getCveAlerta() {
		return cveAlerta;
	}


	public void setCveAlerta(int cveAlerta) {
		this.cveAlerta = cveAlerta;
	}


	public int getTipoAlerta() {
		return tipoAlerta;
	}


	public void setTipoAlerta(int tipoAlerta) {
		this.tipoAlerta = tipoAlerta;
	}


	public String getEmail() {
		return email;
	}


	public void setEmail(String email) {
		this.email = email;
	}


	public FormaSalidaManager getSalidasManager() {
		return salidasManager;
	}


	public void setSalidasManager(FormaSalidaManager salidasManager) {
		this.salidasManager = salidasManager;
	}


	public int getCveSalida() {
		return cveSalida;
	}


	public void setCveSalida(int cveSalida) {
		this.cveSalida = cveSalida;
	}


	public int[] getFormas() {
		return formas;
	}


	public void setFormas(int[] formas) {
		this.formas = formas;
	}


	public int getCveTarea() {
		return cveTarea;
	}


	public void setCveTarea(int cveTarea) {
		this.cveTarea = cveTarea;
	}


	public Timestamp getActiveDateTimestamp() {
		return activeDateTimestamp;
	}


	public Timestamp getLimitDateTimestamp() {
		return limitDateTimestamp;
	}


	public int getFechaActivacionDiasI() {
		return fechaActivacionDiasI;
	}


	public int getFechaLimiteDiasI() {
		return fechaLimiteDiasI;
	}


	public String getActiveDate() {
		return activeDate;
	}


	public void setActiveDate(String activeDate) {
		this.activeDate = activeDate;
	}


	public boolean isFechaActivaDias() {
		return fechaActivaDias;
	}


	public void setFechaActivaDias(boolean fechaActivaDias) {
		this.fechaActivaDias = fechaActivaDias;
	}


	public int getFechaActivacionDate() {
		return fechaActivacionDate;
	}


	public void setFechaActivacionDate(int fechaActivacionDate) {
		this.fechaActivacionDate = fechaActivacionDate;
	}


	public String getFechaActivacionDias() {
		return fechaActivacionDias;
	}


	public void setFechaActivacionDias(String fechaActivacionDias) {
		this.fechaActivacionDias = fechaActivacionDias;
	}


	public String getLimitDate() {
		return limitDate;
	}


	public void setLimitDate(String limitDate) {
		this.limitDate = limitDate;
	}


	public boolean isFechaLimitDias() {
		return fechaLimitDias;
	}


	public void setFechaLimitDias(boolean fechaLimitDias) {
		this.fechaLimitDias = fechaLimitDias;
	}


	public String getFechaLimiteDias() {
		return fechaLimiteDias;
	}


	public void setFechaLimiteDias(String fechaLimiteDias) {
		this.fechaLimiteDias = fechaLimiteDias;
	}


	public int getFechaLimiteDate() {
		return fechaLimiteDate;
	}


	public void setFechaLimiteDate(int fechaLimiteDate) {
		this.fechaLimiteDate = fechaLimiteDate;
	}


	public int getCveNivel() {
		return cveNivel;
	}


	public void setCveNivel(int cveNivel) {
		this.cveNivel = cveNivel;
	}


	public int getCveForma() {
		return cveForma;
	}


	public void setCveForma(int cveForma) {
		this.cveForma = cveForma;
	}


	public String getNombre() {
		return nombre;
	}


	public void setNombre(String nombre) {
		this.nombre = nombre;
	}


	public String getDescripcion() {
		return descripcion;
	}


	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}


	public int getCveFlujo() {
		return cveFlujo;
	}


	public void setCveFlujo(int cveFlujo) {
		this.cveFlujo = cveFlujo;
	}


	public int getCveRole() {
		return cveRole;
	}


	public void setCveRole(int cveRole) {
		this.cveRole = cveRole;
	}

	public ActionErrors validate( ActionMapping mapping , HttpServletRequest request )
	{
		ActionErrors errors = new ActionErrors( ) ;
		
		int page = getPage( ) ;
		int operation = getOperation( ) ;
		
//		System.out.println( "pagina: " + page ) ;
//		System.out.println( "operacion: " + operation ) ;
//		
		// revisa la pagina
		// en caso de que venga del formulario para agregar tarea
		if( page == 1 )
		{
			// en caso de operacion 2, el boton de submit
			if( operation == 2 )
			{
				// revisa el nombre
				if( nombre == null || nombre.trim( ).length( ) == 0 )
					errors.add( "NombreEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.NombreEmpty" ) ) ;
				// en caso de que no este vacio
				else
				{
					// revisa si ya existe una tarea con el mismo nombre dentro del flujo indicado
					boolean exist = MasterCardDAO.existActiveWorkWithNameInFlow( nombre , cveFlujo , cveTarea ) ;
					
					// en caso de que exista
					if( exist )
						errors.add( "NombreAlreadyExist" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.NombreNotExist" , new Object[ ]{ nombre , cveFlujo } ) ) ;
				}
				
				// descripcion
				if( descripcion == null || descripcion.trim( ).length( ) == 0 )
					descripcion = "" ;
				
				// role
				if( cveRole < 1 )
					errors.add( "RoleEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.RoleEmpty" ) ) ;
				
				// forma
				if( cveForma < 1 )
					errors.add( "FormaEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.FormaEmpty" ) ) ;
				
				// revisa la fecha de activacion
				// en caso de que la fecha del asset este elegida
				if( fechaActivacionDate > 0 )
				{
					// revisa el numero de dias
					if( fechaActivacionDias == null || fechaActivacionDias.trim( ).length( ) == 0 )
						errors.add( "DiasActivacionEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.DiasActivacionEmpty" ) ) ;
					// en caso de que no este vacia
					else
					{
						// verifica si es numerico
						try
						{
							fechaActivacionDiasI = Integer.parseInt( fechaActivacionDias ) ;
						}catch( Exception e )
						{
							errors.add( "DiasActivacionNotNum" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.DiasActivacionNotNum" ) ) ;
						}
					}
					
					fechaActivaDias = true ;
				}
				// en caos d eque no este elegido
				else
				{
					// revisa el numero de dias
					if( activeDate != null && activeDate.trim( ).length( ) > 0 )
					{
						// verifica si es fecha
						try
						{
							if( activeDate.trim( ).length( ) != 10 )
								errors.add( "FechaActivacionWrong" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.FechaActivacionWrong" ) ) ;
							else
							{
								String[ ] tokens = activeDate.split( "/" ) ;
								GregorianCalendar gc = new GregorianCalendar( Integer.parseInt( tokens[ 2 ] ) , Integer.parseInt( tokens[ 1 ] ) - 1 , Integer.parseInt( tokens[ 0 ] ) ) ;
								this.activeDateTimestamp = new Timestamp( gc.getTimeInMillis( ) ) ;
							}
							
						}catch( Exception e )
						{
							errors.add( "FechaActivacionWrong" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.FechaActivacionWrong" ) ) ;
						}
					}
					
					fechaActivaDias = false ;
				}
				
				
				// revisa la fecha de limite
				// en caso de que la fecha del asset este elegida
				if( fechaLimiteDate > 0 )
				{
					// revisa el numero de dias
					if( fechaLimiteDias == null || fechaLimiteDias.trim( ).length( ) == 0 )
						errors.add( "DiasLimiteEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.DiasLimiteEmpty" ) ) ;
					// en caso de que no este vacia
					else
					{
						// verifica si es numerico
						try
						{
							fechaLimiteDiasI = Integer.parseInt( fechaLimiteDias ) ;
						}catch( Exception e )
						{
							errors.add( "DiasLimiteNotNum" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.DiasLimiteNotNum" ) ) ;
						}
					}
					
					fechaLimitDias = true ;
				}
				// en caos d eque no este elegido
				else
				{
					// revisa el numero de dias
					if( limitDate == null || limitDate.trim( ).length( ) == 0 )
						errors.add( "FechaLimiteEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.FechaLimiteEmpty" ) ) ;
					// en caso de que no este vacia
					else
					{
						// verifica si es fecha
						try
						{
							if( limitDate.trim( ).length( ) != 10 )
								errors.add( "FechaLimiteWrong" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.FechaLimiteWrong" ) ) ;
							else
							{
								String[ ] tokens = limitDate.split( "/" ) ;
								GregorianCalendar gc = new GregorianCalendar( Integer.parseInt( tokens[ 2 ] ) , Integer.parseInt( tokens[ 1 ] ) - 1 , Integer.parseInt( tokens[ 0 ] ) ) ;
								this.limitDateTimestamp = new Timestamp( gc.getTimeInMillis( ) ) ;
							}
							
						}catch( Exception e )
						{
							errors.add( "FechaActivacionWrong" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.FechaActivacionWrong" ) ) ;
						}
					}
					
					fechaLimitDias = false ;
				}
				
                                MasterCardDAO.closeEntityManager( ) ;
				return errors ;
			}
		}
		
		// en caso de que venga del formulario para editar tarea
		if( page == 2 )
		{
			// en caso de operacion 6, el boton de submit
			if( operation == 6 )
			{
				// revisa el nombre
				if( nombre == null || nombre.trim( ).length( ) == 0 )
					errors.add( "NombreEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.NombreEmpty" ) ) ;
				// en caso de que no este vacio
				else
				{
					// revisa si ya existe una tarea con el mismo nombre dentro del flujo indicado
					boolean exist = MasterCardDAO.existActiveWorkWithNameInFlow( nombre , cveFlujo , cveTarea ) ;
					
					// en caso de que exista
					if( exist )
						errors.add( "NombreAlreadyExist" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.NombreNotExist" , new Object[ ]{ nombre , cveFlujo } ) ) ;
				}
				
				// descripcion
				if( descripcion == null || descripcion.trim( ).length( ) == 0 )
					descripcion = "" ;
				
				// role
				if( cveRole < 1 )
					errors.add( "RoleEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.RoleEmpty" ) ) ;
				
				// forma
				if( cveForma < 1 )
					errors.add( "FormaEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.FormaEmpty" ) ) ;
				
				// revisa la fecha de activacion
				// en caso de que la fecha del asset este elegida
				if( fechaActivacionDate > 0 )
				{
					// revisa el numero de dias
					if( fechaActivacionDias == null || fechaActivacionDias.trim( ).length( ) == 0 )
						errors.add( "DiasActivacionEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.DiasActivacionEmpty" ) ) ;
					// en caso de que no este vacia
					else
					{
						// verifica si es numerico
						try
						{
							fechaActivacionDiasI = Integer.parseInt( fechaActivacionDias ) ;
						}catch( Exception e )
						{
							errors.add( "DiasActivacionNotNum" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.DiasActivacionNotNum" ) ) ;
						}
					}
					
					fechaActivaDias = true ;
				}
				// en caos d eque no este elegido
				else
				{
					// revisa el numero de dias
					if( activeDate == null || activeDate.trim( ).length( ) == 0 )
						errors.add( "FechaActivacionEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.FechaActivacionEmpty" ) ) ;
					// en caso de que no este vacia
					else
					{
						// verifica si es fecha
						try
						{
							if( activeDate.trim( ).length( ) != 10 )
								errors.add( "FechaActivacionWrong" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.FechaActivacionWrong" ) ) ;
							else
							{
								String[ ] tokens = activeDate.split( "/" ) ;
								GregorianCalendar gc = new GregorianCalendar( Integer.parseInt( tokens[ 2 ] ) , Integer.parseInt( tokens[ 1 ] ) - 1 , Integer.parseInt( tokens[ 0 ] ) ) ;
								this.activeDateTimestamp = new Timestamp( gc.getTimeInMillis( ) ) ;
							}
							
						}catch( Exception e )
						{
							errors.add( "FechaActivacionWrong" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.FechaActivacionWrong" ) ) ;
						}
					}
					
					fechaActivaDias = false ;
				}
				
				
				// revisa la fecha de limite
				// en caso de que la fecha del asset este elegida
				if( fechaLimiteDate > 0 )
				{
					// revisa el numero de dias
					if( fechaLimiteDias == null || fechaLimiteDias.trim( ).length( ) == 0 )
						errors.add( "DiasLimiteEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.DiasLimiteEmpty" ) ) ;
					// en caso de que no este vacia
					else
					{
						// verifica si es numerico
						try
						{
							fechaLimiteDiasI = Integer.parseInt( fechaLimiteDias ) ;
						}catch( Exception e )
						{
							errors.add( "DiasLimiteNotNum" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.DiasLimiteNotNum" ) ) ;
						}
					}
					
					fechaLimitDias = true ;
				}
				// en caos d eque no este elegido
				else
				{
					// revisa el numero de dias
					if( limitDate == null || limitDate.trim( ).length( ) == 0 )
						errors.add( "FechaLimiteEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.FechaLimiteEmpty" ) ) ;
					// en caso de que no este vacia
					else
					{
						// verifica si es fecha
						try
						{
							if( limitDate.trim( ).length( ) != 10 )
								errors.add( "FechaLimiteWrong" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.FechaLimiteWrong" ) ) ;
							else
							{
								String[ ] tokens = limitDate.split( "/" ) ;
								GregorianCalendar gc = new GregorianCalendar( Integer.parseInt( tokens[ 2 ] ) , Integer.parseInt( tokens[ 1 ] ) - 1 , Integer.parseInt( tokens[ 0 ] ) ) ;
								this.limitDateTimestamp = new Timestamp( gc.getTimeInMillis( ) ) ;
							}
							
						}catch( Exception e )
						{
							errors.add( "FechaActivacionWrong" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.errors.FechaActivacionWrong" ) ) ;
						}
					}
					
					fechaLimitDias = false ;
				}
				
				System.out.println( "Errores de editar: " + errors.size( ) ) ;
				MasterCardDAO.closeEntityManager( ) ;
				return errors ;
			}
		}
		
		if( page == 3 )
		{
			// operation de cancelar
			if( operation == 10 )
				return errors ;
			
			// operation de aceptar
			if( operation == 11 )
			{
				// revisa que nada este vacio
				if( cveAlerta < 1 )
					errors.add( "AlertaEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.alertas.errors.AlertaEmpty" ) ) ;
				
				// en cao d eque el rol este fuera de rango
				if( cveRole < 1 )
					errors.add( "RolEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.alertas.errors.RolEmpty" ) ) ;
				
//				// en cao d eque el rol este fuera de rango
//				if( tipoAlerta != 2 && ( email == null || email.trim( ).length( ) == 0 ) )
//					errors.add( "EmailEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.tareas.add.alertas.errors.EmailEmpty" ) ) ;
			}
		}
		
		if( page == 4 )
		{
			if( operation == 17 )
				return errors ;
			
			if( operation == 18 )
			{
				// revisa que nada este vacio
				if( cveAlerta < 1 )
					errors.add( "AlertaEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.alarmas.add.alertas.errors.AlertaEmpty" ) ) ;
				
				// en cao d eque el rol este fuera de rango
				if( cveRole < 1 )
					errors.add( "RolEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.alarmas.add.alertas.errors.RolEmpty" ) ) ;
				
//				// en cao d eque el rol este fuera de rango
//				if( tipoAlerta != 2 && ( email == null || email.trim( ).length( ) == 0 ) )
//					errors.add( "EmailEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.alarmas.add.alertas.errors.EmailEmpty" ) ) ;
//				
				System.out.println( "Tipo de alarma: " + tipoAlarma ) ;
				if( tipoAlarma == 2 )
				{
					System.out.println( "dias: " + dias ) ;
					// revisa los dias
					// en csao de vacio
					if( dias == null || dias.trim( ).length( ) == 0 )
						errors.add( "DiasEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.alarmas.add.alertas.errors.DiasEmpty" ) ) ;
					// en caso de no vacio
					else
					{
						// revisa que sea numero
						try
						{
							diasI = Integer.parseInt( dias ) ;
							System.out.println( "DiasI: " + diasI ) ;
						}catch( Exception e )
						{
							errors.add( "DiasNotNumber" , new ActionMessage( "com.mastercard.assets.web.modules.alarmas.add.alertas.errors.DiasNotNumber" ) ) ;
						}
					}
						
				}
			}
		}
		
		
		if( page == 5 )
		{
			if( operation == 17 )
				return errors ;
			
			if( operation == 22 )
			{
				// revisa que nada este vacio
				if( cveAlerta < 1 )
					errors.add( "AlertaEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.alarmas.add.alertas.errors.AlertaEmpty" ) ) ;
				
				// en cao d eque el rol este fuera de rango
				if( cveRole < 1 )
					errors.add( "RolEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.alarmas.add.alertas.errors.RolEmpty" ) ) ;
				
//				// en cao d eque el rol este fuera de rango
//				if( tipoAlerta != 2 && ( email == null || email.trim( ).length( ) == 0 ) )
//					errors.add( "EmailEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.alarmas.add.alertas.errors.EmailEmpty" ) ) ;
//				
				System.out.println( "Tipo de alarma: " + tipoAlarma ) ;
				if( tipoAlarma == 2 )
				{
					System.out.println( "dias: " + dias ) ;
					// revisa los dias
					// en csao de vacio
					if( dias == null || dias.trim( ).length( ) == 0 )
						errors.add( "DiasEmpty" , new ActionMessage( "com.mastercard.assets.web.modules.alarmas.add.alertas.errors.DiasEmpty" ) ) ;
					// en caso de no vacio
					else
					{
						// revisa que sea numero
						try
						{
							diasI = Integer.parseInt( dias ) ;
							System.out.println( "DiasI: " + diasI ) ;
						}catch( Exception e )
						{
							errors.add( "DiasNotNumber" , new ActionMessage( "com.mastercard.assets.web.modules.alarmas.add.alertas.errors.DiasNotNumber" ) ) ;
						}
					}
						
				}
			}
		}
		MasterCardDAO.closeEntityManager( ) ;
		return errors ;
	}

    /**
     * @return the multiple
     */
    public int getMultiple() {
        return multiple;
    }

    /**
     * @param multiple the multiple to set
     */
    public void setMultiple(int multiple) {
        this.multiple = multiple;
    }
    
     /**
     * @return the microFlujo
     */
    public int getMicroFlujo() {
        return microFlujo;
    }

    /**
     * @param microFlujo the microFlujo to set
     */
    public void setMicroFlujo(int microFlujo) {
        this.microFlujo = microFlujo;
    }

}
